A. Field of the Invention
This invention relates to the field of telecommunication and more particularly to methods for providing support of network protocols for a host system (such as a general-purpose computer) in a transparent manner such that the host system can communicate with a peer over a network where the host system lacks native support for the protocols required by the network""s routers. For example, the invention provides wide area network access for a host system via asynchronous transfer mode over asynchronous digital subscriber line service, where the host system does not have native support for the RFC 1438 protocol used by the network, and only supports the Point-to-Point Protocol.
B. Description of Related Art and Advantages of the Invention
In order for two computers or other items of digital communications equipment to exchange data over a communications medium such as a wide area computer network, both computers have to transmit and receive data in accordance with a set of standards or procedures. These standards or procedures are known as xe2x80x9cprotocolsxe2x80x9d. As an example, a protocol may assign or designate specific bytes in a packet of data for containing certain information related to the transmission, such as the length of the data, address information, and control characters. Without such protocols, data would be unintelligible to the receiving computer and communication would not be possible. The establishment of protocols enables diverse equipment manufacturers to supply hardware to the public and build computer networks (such as the Internet), with the hardware and networks generally interoperable with equipment of other manufacturers.
The communication industry has standards bodies that formally adopt protocols. Other protocols are xe2x80x9cde factoxe2x80x9d industry standards, in that the early manufacturers adopt them and other companies selling similar equipment use the same techniques in order to be compatible. As technology advances new standards or protocols are proposed by people working in the industry, typically in the form of a xe2x80x9cRequest for Commentxe2x80x9d document, also referred to in the art as an RFC. Persons skilled in the art are familiar with the RFC""s.
The Point-to-Point Protocol, also known as the PPP, is a network level protocol in wide usage today that enables general-purpose computers to communicate over certain packet switched networks. Persons skilled in the art are familiar with the PPP and the several RFCs describing this protocol and various features and implementations thereof.
Over the last few years, new and faster networks have become available for connecting computers together over a local or wide area. Access to such networks to the general public from their personal computer is now becoming available. One example is wide area network access via Asynchronous Transfer Mode (ATM) over Asynchronous Digital Subscriber Line (ADSL) service.
Companies such as 3Com Corporation, the assignee of the present invention, provide products to provide such access for host computer systems, such as general-purpose computers running a Windows(copyright) operating system from Microsoft Corporation. These products can take the form of adapter cards for a computer chassis, and external devices that plug into a port on the computer. Typically, the network routers use a special protocol for encapsulating lower lever protocols when providing wide area network access using ATM over ADSL. This protocol is described in RFC 1483 xe2x80x9cMultiProtocol Encapsulation over ATM Adaptation Layer 5xe2x80x9d, by J. Heinanen, July 1993. The RFC 1483 document is fully incorporated by reference herein.
The situation may arise wherein the host computer system only supports the transport of PPP traffic across wide area network devices. In other words, the communications software installed in the host computer system and in the network elements (such as routers) provide or enable the communications protocols in the PPP suite of protocols. If the host computer system were to try to communicate with a remote peer on a wide area network in which the network routers do not support PPP and instead only supported the RFC 1483 protocol, for example in a network providing wide area network access via ATM over ADSL, an incompatible situation would result. PPP and RFC 1483 are mutually incompatible.
The present invention solves this problem. The present invention provides a method and apparatus by which a host system, which only provides support for one protocol (such as PPP), can support network traffic in accordance with a second incompatible network protocol, such as RFC 1483 wide area network support.
U.S. Pat. Nos. 5,768,525 and 5,657,452, both awarded to Joseph D. Kralowetz and Douglas F. Ortega and assigned to the assignee of the present invention, describe a technique for providing transparent support of network protocols that enables two computers to communicate over a network. The technique uses a proxy engine to negotiate parameters and provide support for protocols that are enabled by the remote computer but not enabled by the host system. The present invention represents improvements to the technique of the above patents.
In one aspect of the invention, a method is provided for supporting network protocols for a host source of data at one end of a network. An example of the host source or system is a general-purpose computer. The host transmits data to and receives data from a remote peer at another point in the network.
The method involves a first step of emulating a negotiation of a first network protocol between the host source of data and a remote router in a network connecting the host source and the remote peer. The first network protocol is supported by the host but is not supported by routers in the network. For example, the first network protocol that is negotiated with the host source may be the Point-to-Point Protocol.
The method continues with a second step of translating or converting headers of data packets transmitted between the host source of data and the remote peer. For transmission of data from the host source to the remote peer, the step of translating headers comprising the step of translating a header associated with the first network protocol (e.g., PPP) into a header associated with a second network protocol, such as the RFC 1483 protocol. The second network protocol is supported by network routers but is not supported by the host source of data. The network traffic with the RFC 1483 header is then delivered to a driver for placement on the network and transmitted to the remote peer.
Note that while the host system has no native support for the second network protocol, the support is provided by the invention. In a representative preferred embodiment, a communications software structure in accordance with the invention, referred to herein as a spoofing module, essentially xe2x80x9cspoofsxe2x80x9d the host system and provides that support for it. The support is provided by an emulation of the negotiation of the first network protocol and providing the translation of packet headers from the first protocol to the other. This spoofing module consists of two separate functions or modules, one module for protocol negotiation and the other for packet header translation.
The reverse header translation process is preformed for data that is received as network traffic from the remote peer. In particular, the method involves the step of translating a header associated with the second network protocol, e.g., RFC 1483, into a header associated with the first network protocol, e.g., PPP. The translation module then delivers the transport data with the valid PPP header to a transport layer processing module in the host system for processing.
As a result of this technique, a host system that only supports the first network protocol over a wide area network, such as PPP, is able to function in an network that has routers that only support a second, incompatible, network protocol such as RFC 1483. This invention allows the owners of the host systems to take advantage of the new networking technologies in an efficient manner.
In another aspect of the invention, the step of emulating the negotiation of the first network protocol is performed by a spoofing module associated with the host system and wherein the method further comprises the step of providing user-defined configuration parameters permitting the spoofing module to negotiate control protocols between the host and the routers on the network that only support the second network protocol. These user-defined parameters may be stored in memory in a file in the host system. The user defined configuration parameters may include such features as remote and local Internet Protocol addresses, primary and secondary DNS addresses, Internet Packet Exchange (IPX) addresses, and IPX node numbers. These configuration parameters allow the emulator to negotiate the Link Control Protocol (LCP), Internet Protocol Control Protocol (IPCP) and Internet Packet Exchange Control Protocol (IPXCP). The packet translation module may use the negotiation of such lower level protocols when translating packet headers between the first and second network protocols.
There are a number of ways in which the above method may be practiced. In a representative preferred embodiment, the host system is a general-purpose computer running a Windows(copyright) operating system from Microsoft Corporation, such as Windows 95 or Windows NT. The operating system typically incorporates communications software for enabling the host system to communicate over a wide area network, and thus includes modules or xe2x80x9cstacksxe2x80x9d for the network layer protocols, e.g., PPP, and transport layer protocols, such as TCP/IP. When the user buys an adapter card or external module to communicate over a new type of network, such as an adapter card providing wide area network access over ATM and ADSL, the vendor of the adapter card provides a computer readable storage medium, such as an installation disk or CD ROM, containing a software program that is loaded into the host system when the device is used the first time. This software program includes a xe2x80x9cspoofingxe2x80x9d routine or module with two separate modules: a PPP negotiation module for conducing the PPP negotiation session between the host system and the remote peer, and a packet header translation module for converting headers for network traffic from one protocol to the other, as described herein.
Accordingly, one possible form of the invention is a computer-readable storage medium containing a set of instructions for a general-purpose computer to perform the support for network protocols in accordance with the methods described herein. Another form or embodiment of the invention is an operating system for a general-purpose computer or other type of processor (such as may be found in an element of a network, such as a bridge or router), that performs emulation of a network level protocol negotiation and translation of packet headers from one form to another. Yet another embodiment of the invention consists of a general-purpose computer connected to a network that contains a communications program for providing the network protocol support in accordance with the methods described herein.
These and many other advantages and features of the invention will be described in greater detail in the following detailed description of a presently preferred embodiment.